package com.law.lawcaculator.service;

import com.law.lawcaculator.model.dto.GenerateReportResponse;
import com.law.lawcaculator.model.entity.SubmitAnswers;

import java.util.List;
import java.util.Map;
import jakarta.servlet.http.HttpServletResponse;

public interface ReportService {
    /**
     * 生成法律计算报告
     * @param sessionId 会话ID，用于标识用户会话
     * @param answers 用户提交的答案列表
     * @param appId 应用ID，用于标识不同的应用场景，将作为calculatorCode存储
     * @return 包含报告内容的响应对象
     */
    GenerateReportResponse generateReport(String sessionId, List<SubmitAnswers> answers, String appId);
    
    /**
     * 下载Word格式的报告
     * @param sessionId 会话ID
     * @param response HttpServletResponse用于输出文件
     */
    void downloadWordReport(String sessionId, HttpServletResponse response);
    
    /**
     * 生成HTML格式的报告内容
     * @param sessionId 会话ID
     * @param data 报告生成所需的数据
     * @return HTML格式的报告内容
     */
    String generateHtmlReport(String sessionId, Map<String, Object> data);
}